import { post, put } from '@/utils/request'

// 认证相关API接口
export const authApi = {
  // 发送短信验证码
  sendCode: (phoneNumber) => {
    return post('/auth/send-code', { phoneNumber })
  },

  // 用户注册
  register: (data) => {
    return post('/auth/register', data)
  },

  // 用户登录
  login: (data) => {
    return post('/auth/login', data)
  },

  // 重置密码
  resetPassword: (data) => {
    return put('/auth/reset-password', data)
  }
}

// 注册参数类型
export const registerParams = {
  username: '', // 用户名（唯一），可包含字母、数字、下划线，长度为 3 - 20 位
  password: '', // 密码（明文，6 - 20 位），建议包含字母、数字和特殊符号
  confirmPassword: '', // 确认密码，需与 password 一致
  phoneNumber: '', // 手机号，需为 11 位数字格式
  verificationCode: '' // 6 位短信验证码
}

// 登录参数类型
export const loginParams = {
  username: '', // 用户名
  password: '' // 密码（明文）
}

// 重置密码参数类型
export const resetPasswordParams = {
  phoneNumber: '', // 手机号，需为 11 位数字格式
  newPassword: '', // 新密码（6 - 20 位），建议包含字母、数字和特殊符号
  confirmPassword: '', // 确认新密码，需与 newPassword 一致
  verificationCode: '' // 6 位短信验证码
}

// 错误码说明
export const errorCodes = {
  200: '成功',
  400: '请求参数错误',
  40001: '手机号码格式有误',
  40002: '验证码错误',
  40003: '验证码过期',
  40004: '密码长度需为 6 - 20 位',
  40005: '两次密码输入不一致',
  40006: '用户名格式错误',
  40007: '新密码长度不符合要求',
  40008: '两次新密码输入不一致',
  401: '未授权（登录失效）',
  40101: '密码错误',
  404: '资源未找到',
  40401: '用户不存在',
  40402: '手机号未注册',
  409: '资源冲突',
  40901: '手机号已被注册',
  40902: '用户名已被占用',
  429: '请求过于频繁',
  42901: '同一手机号 60 秒内只能发送一次验证码',
  500: '服务器内部错误',
  50001: '短信服务暂时不可用，请稍后重试',
  50002: '注册失败，请稍后重试',
  50003: '登录失败，请稍后重试',
  50004: '密码重置失败，请稍后重试'
} 